#pragma once

class WanderState;		class PatrolState;		class IdleState;
class TrackState;		class AttackState;		class DeadState;
class HelpState;		class ThrustState;		class FlyingState;
class KnockDownState;	class JumpState;		class FallApartState;
class ReturnState;		class RetreatState;		class RunAwayState;
class ChaosState;		class SummonIdle;		class SpawnIdleState;
class StopIdleState;	class TrackAreaState;

class NPCStateFactory
{
public:
	NPCStateFactory();
	~NPCStateFactory();

	State*				Alloc( DWORD dwStateID );

private:
	WanderState *		m_pWanderState;		IdleState *			m_pIdleState;
	TrackState *		m_pTrackState;		AttackState *		m_pAttackState;
	HelpState *			m_pHelpState;		ThrustState *		m_pThrustState;
	DeadState *			m_pDeadState;		FlyingState *		m_pFlyingState;
	KnockDownState *	m_pKnockDownState;	JumpState *			m_pJumpState;
	FallApartState *	m_pFallApartState;	ReturnState *		m_pReturnState;
	RetreatState *		m_pRetreatState;	RunAwayState *		m_pRunAwayState;
	ChaosState *		m_pChaosState;		SummonIdle *		m_pSummonIdleState;
	PatrolState *		m_pPatrolState;		SpawnIdleState *	m_pSpawnIdleState;
	StopIdleState *		m_pStopIdleState;	TrackAreaState *	m_pTrackAreaState;
};





